package cn.tedu.innerx;
//匿名内部类
public class NMInnerClass {
    public static void main(String[] args) {
        //
////        new Computer().usb.connect();
//        A a =new A(){
//            @Override
//            void method() {
//                System.out.println("匿名内部类的抽象方法实现");
//            }
//        } ;
//        m(a);
//        m(new A(){
//            @Override
//            void method() {
//                System.out.println("匿名内部类的抽象方法实现");
//            }
//        });
//        new A(){
//            @Override
//            void method() {
//                System.out.println("连接");
//            }
//        }.method();
//        new B().method();

        A a = getA();
        a.method();
    }
    public static void m(A a){
        a.method();
    }
    public static A getA(){
        return new A(){
            @Override
            void method() {
                System.out.println("aa");
            }
        };
    }
}
//抽象类
abstract class A{
    abstract void method();
}
class B extends A{

    @Override
    void method() {
        System.out.println("抽象方法的实现");
    }
}
interface USB{
    void connect();
}

class Computer{
    //成员内部类
//    class Mouse implements USB{
//        @Override
//        public void connect() {
//            System.out.println("鼠标连接");
//        }
//    }
//    USB usb = new Mouse();
    USB usb = new USB(){
        @Override
        public void connect() {
            System.out.println("鼠标连接");
        }
    };
    USB usb1 = new USB(){
        @Override
        public void connect() {
            System.out.println("键盘连接");
        }
    };
}
